package xaj.scc.ast;

public interface Visitor {
	
	void visitClosureFactor(ClosureFactor cf);
	
	void visitConcatFactor(ConcatFactor cf);
	
	void visitFactor (Factor f);
	
	void visitGrammarNodeOld (GrammarNodeOld g);
	
	void visitImportSymbol (ImportSymbol is);
	
	void visitImportSyntax (ImportSyntax is);
	
	void visitNamedFactor (NamedFactor nf);
	
	void visitNumberOfPasses (NumberOfPasses np);
	
	void visitOptionalFactor (OptionalFactor of);
	
	void visitOrFactor (OrFactor of);
	
	void visitSimpleFactor(SimpleFactor sf);
	
	void visitStringFactor (StringFactor sf);
		
	void visitProduction (Production pd);
	
	void visitProductionElement (ProductionElement pe);
		
	void visitSemanticAction(SemanticAction sa);
	
	void visitSyntaxClassBody (SyntaxClassBody scb);
	
	void visitSyntaxClassDecl (SyntaxClassDecl scd);
	
	void visitSyntaxDeclaration (SyntaxDeclaration sd);
	
	void visitSyntaxDeclarationInsertion (SyntaxDeclarationInsertion sdi);
	
	void visitSyntaxDeclarationOverrides (SyntaxDeclarationOverrides sdo);

	void visitLambdaFactor(LambdaFactor lf);

	//void visitOnWeaving(OnWeaving ow);
	void visit(OnWeaving ow);
}
